#include <iostream>
#include <string>

using namespace std;

/*
函数重载 容易由于 默认参数 造成二义性
*/

void Swap_Func(int & val_1 , int &val_2)
{
    int temp = val_2;
    val_2 = val_1;
    val_1 = temp;
}

void Swap_Func(int & val_1 , int &val_2 , int val = 10)
{
    int temp = val_2;
    val_2 = val_1;
    val_1 = temp;
}

/*
当传递的参数为常量引用时 也是可以区分
    非常量引用  ==  变量
    常量引用  ==   常量 或 表达式
*/




void Func( const int & val )
{
    cout << "我是一号" << val << endl;
}

void Func( int & val )
{
    cout << "我是二号" << val << endl;
}

int main(int argc, char const *argv[])
{
    int val_int_1 = 50;
    int val_int_2 = 70;
    
    Swap_Func(val_int_1 , val_int_2 , 10);

    Func(50);

    return 0;
}
